1. Field of the Invention
This invention relates generally to mapping structured information to different structured information in an objector-oriented framework. The present invention relates more specifically to processing a document encoded in a markup language format, a database information format, an ISO/IEC 9070 naming scheme, a UNIX file name scheme, or a DOS file name scheme, transforming it into another markup language format, another database information format, an ISO/IEC 9070 naming scheme, a UNIX file name scheme, or a DOS file name scheme, in an object-oriented framework. The invention is more specifically related to a system and computer program product for mapping in which a user interactively defines the mapping for the transformation in an object-oriented framework.
2. Discussion of the Background
Standard Generalized Markup Language ("SGML") is an information management standard adopted by the International Organization for Standardization ("ISO"), as ISO 8879:1986, as a means for providing platform-independent and application-independent documents that retain content, indexing, and linked information. SGML provides a grammarlike mechanism for users to define the structure of their documents and the tags they will use to denote the structure in individual documents. A complete description of SGML is provided in Goldfarb, C. F., The SGML Handbook, Oxford University Press, Oxford, 1990, and McGrath, S., Parseme.1st: SGML for Software Developers, Prentice Hall PTR, New Jersey, 1998, which are incorporated herein by reference.
HyperText Markup Language ("HTML") is an application of SGML that uses tags to mark elements, such as text or graphics, in a document to indicate how Web browsers should display these elements to the user and should respond to user actions such as activation of a link by means of a key press or mouse click. HTML is used for documents on the World Wide Web. HTML 2.0, defined by the Internet Engineering Task Force ("IETF"), includes features of HTML common to all Web browsers as of 1995, and was the first version of HTML widely used on the World Wide Web. Future HTML development will be carried out by the World Wide Web Consortium ("W3C"). HTML 3.2, the latest proposed standard, incorporates features widely implemented as of early 1996. A description of SGML and HTML features is given in Bradley, N., The Concise &lt;SGML&gt; Companion, Addison Wesley Longman, New York, 1997, which is incorporated herein by reference.
Object Oriented Programming ("OOP") is a programming methodology in which a program is viewed as a collection of discrete objects that are self-contained collections of data structures and routines that interact with other objects. Many high-level languages, including C++, support the declaration of a class. The class is typically a template, or detailed description, of the objects, or instances of objects, which will be created, or instantiated, by a constructor function during program execution and destroyed by a destructor function when the object is no longer needed. A conversational reference to a class includes all of the objects currently in existence as a result of constructor calls. A class is made up of data items, structures, and methods. Data items correspond to variables of prior programming art. Structures are named groupings of related data items and other structures. Methods correspond to functions and subroutines of prior programming art.
An object-oriented framework is a reusable basic design structure, consisting of abstract and concrete classes, that assists in building applications.
Pointers, used for accessing specific objects, data items, and methods, are data items which contain system equivalents of absolute addresses in computer memory. Null pointers, or zero pointers, are pointer variables or literals which have been assigned a system value, for example, zero, denoting that a specific pointer is currently pointing to a null, or non-existent item. References and reference variables are generally data items which contain system equivalents of absolute addresses in computer memory.
A string variable or a string literal is a data structure composed of a sequence of characters of the character set of a particular application. A null string, a nil string, or an empty string is a string which contains no characters.
The three main features of object oriented programming are inheritance, encapsulation, and polymorphism. Inheritance allows a programmer to establish a general class with features which are desirable for a wide range of objects. For example, if a programmer designs a class polygon having certain features such as a closed convex shape made up of plural straight lines joined pairwise at vertices, it is then possible to construct polygon subclasses such as triangles, quadrilaterals, pentagons, and hexagons, all having the shared properties of the parent class polygon, with additional constraints on the number of sides to be allowed for the objects generated. It is also possible, for example, to have subclasses of class quadrilateral such as rectangle and rhombus. A class square inherits all features of the class rectangle and additionally has all of its sides equal in length. The class polygon is considered an abstract class, in that instantiations of actual objects is performed only in its subclasses. However, the class polygon establishes certain properties inherent to all of the non-abstract, or concrete subclasses for inheritance purposes.
Encapsulation and polymorphism have already been described, and are already well known, in patents relating to object oriented systems. A comprehensive discussion of OOP is provided in Coad, P. and Yourdon, E., Object-Oriented Analysis, Second Edition, Prentice-Hall, Inc., New Jersey, 1991, and in Booch, G., Object-Oriented Analysis and Design with Applications, Second Edition, Addison Wesley Longman, California, 1994, which are incorporated herein by reference.
ISO and International Electrotechnical Commission ("IEC") form a specialized system for worldwide standardization. ISO/IEC 9070:1991(E) is an international standard which is applied to an assignment of unique owner prefixes to owners of public text conforming to ISO 8879. The standard describes the procedures for making an assignment and the method for constructing registered owner names from them. Procedures for self-assignment of owner prefixes by standards bodies and other organizations are also specified. ISO/IEC 9070:1991(E) is incorporated herein by reference.
UNIX and DOS are well-known operating systems for computers. Both UNIX and DOS support a file naming scheme which involve a path from a root directory, through descendant directories, to leaf nodes which are non-directory file names.
Processing systems are known in which a data processor converts a document encoded in a markup language automatically to another format. For example, Balise software from Computing Art, Inc. processes documents encoded in SGML to convert them to a formatted output for user viewing. However, this software does not allow the user to interactively define the mapping of SGML tags to another format.